package adapterfacade.impl;


import adapterfacade.base.BaseSimpleDuck;
import adapterfacade.base.BaseTurkey;

/**
 * 火鸡冒充鸭子的适配器
 * 首先 需要实现想转换成的类型接口
 * 也就是客户所期望看到的接口(厂商要求的)
 * @author yaojianfeng
 */
public class TurkeyAdapter implements BaseSimpleDuck {

     private BaseTurkey turkey;

    /**
     * 取得适配对象的引用
     * @param turkey 需要适配的对象(自己有的)
     */
    public TurkeyAdapter(BaseTurkey turkey) {
        this.turkey = turkey;
    }

    /**
     * 鸭子 呱呱叫
     */
    @Override
    public void quack() {
        turkey.gobble();
    }

    /**
     * 鸭子可以飞挺远
     * 所以火鸡需要飞五次
     */
    @Override
    public void fly() {
        for (int i = 0; i < 5; i++) {
            turkey.fly();
        }
    }
}
